{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## This notebook both plots a given parametic curve and computes its Frenet appartus.\n",
    "\n",
    "That is it will plot the curve and compute its curvature, unit, and\n",
    "unit normal.\n",
    "\n",
    "Start by importing the required libraries:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import *  #python symbolic math package.\n",
    "import numpy as np   #numerical mathmatics library.\n",
    "import matplotlib.pyplot as plt    #plotting library.\n",
    "init_printing()            #to get good looking output."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Declare $t$ to be a symbol, give the domain $[a,b]$ of \n",
    "the curve, and define $x$ and $y$ as functions of $t$.\n",
    "These should all be editted as needed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "t = symbols('t')\n",
    "a = 0\n",
    "b = 20*pi\n",
    "x = exp(-t/5)*cos(t)\n",
    "y = exp(-t/5)*sin(t)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Divide the domain into pieces of length $h$ to be used in plotting\n",
    "and compute the $x$ and $y$ values at these the subdivsions of the domain\n",
    "and store in them in lists."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "h = .1   #edit if need be.\n",
    "t_dom = np.arange(a,b,h)\n",
    "x_vals = [x.subs(t,s) for s in t_dom]\n",
    "y_vals = [y.subs(t,s) for s in t_dom]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the curve."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$$\\left ( -0.6208197852041253, \\quad 1.0771818945335299, \\quad -0.45454513588891127, \\quad 0.8018979325108379\\right )$$"
      ],
      "text/plain": [
       "(-0.6208197852041253, 1.0771818945335299, -0.45454513588891127, 0.801897932510\n",
       "8379)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x_vals,y_vals)\n",
    "plt.axis('equal')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the deriviatives of $x$ and $y$ with respect to $t$ and use\n",
    "them to compute the speed, $v$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$$1.01980390271856 \\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}$$"
      ],
      "text/plain": [
       "                         0.5\n",
       "                 ⎛ -2⋅t ⎞   \n",
       "                 ⎜ ─────⎟   \n",
       "                 ⎜   5  ⎟   \n",
       "1.01980390271856⋅⎝ℯ     ⎠   "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dx = diff(x,t)\n",
    "dy = diff(y,t)\n",
    "v = (dx**2 + dy**2)**(1/2)\n",
    "v.simplify()  # simplfy v if possible."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the unit tangent $\\mathbf t$ and unit normal $\\mathbf n$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "t1 = simplify(dx/v)\n",
    "t2 = simplify(dy/v)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The unit tangent is"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$$\\left ( - \\frac{\\left(0.98058067569092 \\sin{\\left (t \\right )} + 0.196116135138184 \\cos{\\left (t \\right )}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}, \\quad \\frac{1.0 \\left(- 0.196116135138184 \\sin{\\left (t \\right )} + 0.98058067569092 \\cos{\\left (t \\right )}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}\\right )$$"
      ],
      "text/plain": [
       "⎛                                                              -0.5           \n",
       "⎜                                                      ⎛ -2⋅t ⎞      -t       \n",
       "⎜                                                      ⎜ ─────⎟      ───      \n",
       "⎜                                                      ⎜   5  ⎟       5       \n",
       "⎝-(0.98058067569092⋅sin(t) + 0.196116135138184⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   , 1.0⋅\n",
       "\n",
       "                                                              -0.5     ⎞\n",
       "                                                      ⎛ -2⋅t ⎞      -t ⎟\n",
       "                                                      ⎜ ─────⎟      ───⎟\n",
       "                                                      ⎜   5  ⎟       5 ⎟\n",
       "(-0.196116135138184⋅sin(t) + 0.98058067569092⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   ⎠"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(t1,t2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The unit normal is"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$$\\left ( - \\frac{1.0 \\left(- 0.196116135138184 \\sin{\\left (t \\right )} + 0.98058067569092 \\cos{\\left (t \\right )}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}, \\quad - \\frac{\\left(0.98058067569092 \\sin{\\left (t \\right )} + 0.196116135138184 \\cos{\\left (t \\right )}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}\\right )$$"
      ],
      "text/plain": [
       "⎛                                                                   -0.5      \n",
       "⎜                                                           ⎛ -2⋅t ⎞      -t  \n",
       "⎜                                                           ⎜ ─────⎟      ─── \n",
       "⎜                                                           ⎜   5  ⎟       5  \n",
       "⎝-1.0⋅(-0.196116135138184⋅sin(t) + 0.98058067569092⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   ,\n",
       "\n",
       "                                                               -0.5     ⎞\n",
       "                                                       ⎛ -2⋅t ⎞      -t ⎟\n",
       "                                                       ⎜ ─────⎟      ───⎟\n",
       "                                                       ⎜   5  ⎟       5 ⎟\n",
       " -(0.98058067569092⋅sin(t) + 0.196116135138184⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   ⎠"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(-t2,t1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the second derivatives of $x$ and $y$ and use them to \n",
    "compute the curvature and print it out"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$$\\frac{0.98058067569092}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}$$"
      ],
      "text/plain": [
       "                         -0.5\n",
       "                 ⎛ -2⋅t ⎞    \n",
       "                 ⎜ ─────⎟    \n",
       "                 ⎜   5  ⎟    \n",
       "0.98058067569092⋅⎝ℯ     ⎠    "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddx = diff(dx,t)\n",
    "ddy = diff(dy,t)\n",
    "num = simplify(dx*ddy - ddx*dy)\n",
    "curvature = simplify(num/v**3)\n",
    "curvature.simplify()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
